Add h2 fuel cell technology to ReEDS main#111
Conversation
louisaserpe
left a comment
There was a problem hiding this comment.
Thanks Yijin! Let me know if you have any questions or need help with any of these changes.
| @@ -0,0 +1,42 @@ | |||
| i,t,capcost,fom,vom,heatrate | |||
| h2-fuel-cell,2010,1352.084006,30.97866356,1.7054,8.461 | |||
There was a problem hiding this comment.
Can you point me to where these fom and vom numbers are coming from? The paper says we assume the same vom and fom as NG CTs but these values don't match the ATB/gas_ATB_2024_moderate
| @@ -0,0 +1,42 @@ | |||
| i,t,capcost,fom,vom,heatrate | |||
| h2-fuel-cell,2010,1342.191177,30.81961856,1.7054,8.461 | |||
| h2-fuel-cell,2011,1342.191177,30.81961856,1.7054,8.461 | |||
There was a problem hiding this comment.
Just documenting that I checked that this is HHV
| canada,Canadian Imports,Remove,Remove,Canadian Imports | ||
| h2-ct,H2-CT,Hydrogen Combustion,Thermal,H2-CT | ||
| h2-cc,H2-CC,Hydrogen Combustion,Thermal,H2-CC | ||
| h2-fuel-cell,H2-Fuel-Cell,H2 Fuel Cell,Thermal,H2-Fuel-Cell |
There was a problem hiding this comment.
| h2-fuel-cell,H2-Fuel-Cell,H2 Fuel Cell,Thermal,H2-Fuel-Cell | |
| h2-fuel-cell,H2-Fuel-Cell,Hydrogen Combustion,Remove,H2-Fuel-Cell |
There was a problem hiding this comment.
@louisaserpe do we want to remove it instead of assigning it as "Thermal" unit?
| @@ -0,0 +1,67 @@ | |||
| ,Default Value,USA_defaults_fc_pr,USA_defaults_fc_mid,USA_defaults_fc_low,USA_defaults_fc_high,USA_defaults_fc_mid_w_ng_fc | |||
There was a problem hiding this comment.
Let's delete this file before merging into main. I'd suggest adding a small fuel cell case to either the cases_example.csv or cases_test.csv
Summary
Adds
h2-fuel-cell(hydrogen-powered fuel cell) as a new technology option in ReEDS, complementing the existingng-fuel-cell(natural gas fuel cell) already in the model. The H2 fuel cell consumes hydrogen (h2fuel, the same fuel asH2-CT/H2-CC), is gated by a new dedicated switchGSw_H2FuelCell, and offers three cost scenarios (conservative/moderate/advanced) based on Reznicek et al. (2026).Technical details
Implementation notes
h2-fuel-cellis added to a newH2_FUEL_CELLsubset ini_subtech.csvand flagged under bothH2_COMBUSTIONandH2_FUEL_CELLintech-subset-table.csv. It is not merged intong-fuel-cell'sFUEL_CELLsubset — the two fuel cells are toggled separately.b_inputs.gms): adds a newh2_fuel_cell(i)set; theng-fuel-cellban was refactored from a subset ban to an explicitban('ng-fuel-cell')(under the existingSw_FuelCell=0block, behavior preserved), and a new block bansh2-fuel-cellwhenSw_H2FuelCell=0. Theh2_combustionset comment was updated to include fuel cells.h2-fuel-cellusesh2fuel(fuel2tech.csv), is added toi.csvandtechs_default.csv(region typep).plantcostprep.pyby addingh2fuelcellto the existingconv_techsloader loop, using switchplantchar_h2fuelcell. Dollar year 2022$ (dollaryear.csv), converted to 2004$ via the standard deflator.h2-fuel-cellrows were added across the plant-characteristic and financial input files (emitrate,cost_opres_default/_market,minCF,mttr,outage_forced_static,outage_scheduled_static,ramprate,startcost,unitsize_atb,heat_rate_adj,heat_rate_penalty_spin,degradation_annual_default,years_until_endogenous,construction_times_default,financials_tech_ATB2023/_CRP20/ATB2024,reg_cap_cost_diff_default,nat_gen_tech_frac,ivt_default/_small/_step,futurefiles,runfiles).Additional changes
postprocessing/tech_aggregation.csv,tech_map.csv,tech_style.csvupdated forh2-fuel-celldisplay: mapped toH2-Fuel-Cell, aggregated as "H2 Fuel Cell", color#87A21D. (A matchingH2 Fuel Cellstyle key was added so the aggregated bar renders incompare_cases.pyPPTs.)cases_h2-fuelcell.csvadded with 5 test scenarios:USA_defaults_fc_pr(runs without fc switch turning on),USA_defaults_fc_mid(moderate cost/deployment cost case),USA_defaults_fc_low(advanced/high deployment cost case),USA_defaults_fc_high(conservative/low deployment cost case),USA_defaults_fc_mid_w_ng_fc(moderate level + NG fuel cell switch turned on).docs/source/model_documentation.md, file entries insources.md, and a Reznicek 2026 entry inreferences.bib.Switches added/removed/changed
GSw_H2FuelCell0,10h2-fuel-cellas a technology optionplantchar_h2fuelcellh2fuelcell_conservative,h2fuelcell_moderate,h2fuelcell_advancedh2fuelcell_moderate(
GSw_FuelCellis unchanged by this PR and continues to govern onlyng-fuel-cell.)Relevant sources or documentation
Validation, testing, and comparison report(s)
Ran 1/6 cases under main ReEDS branch, also ran the 5/6 cases under
cases_h2-fuelcell.csvto test scenarios (fc_pr,fc_low,fc_mid,fc_high,fc_mid_w_ng_fc) and compared capacity, location, and dispatch withcompare_cases.py. The newh2-fuel-celltechnology builds, is selected overH2-CTas costs decline, and dispatches as expected.Location & technology selection (2030)
In 2030 the H2 capacity lands in exactly two BAs : p10 (692 MW) and p31 (210 MW) = 902 MW total in every scenario. The location does not change; only the technology filling those two slots swaps between scenarios as the fuel-cell cost case improves:
fc_prfc_lowfc_midfc_mid_w_ng_fcfc_highThis 902 MW is prescribed build from
inputs/capacity_exogenous/interconnection_queues.csv. It appears as a step in 2030 in p10 + p31, holds flat through 2035, then declines. The model fills that prescribed requirement with the cheapest available H2 technology, which is why fuel cell displaces H2-CT in the cheaper cost cases (low/mid), partially inhigh(p10 only), and not at all inpr(H2-CT baseline).H2 fuel cell capacity build (MW)
prlowmidhighDispatch / capacity factor
Annual CF is a flat 6.0% across every scenario and year. The 6% is the annual minimum CF requirement imposed in
inputs/plant_characteristics/minCF.csv; peak hourly utilization reaches ~16% max when looking at the gen_h.csv file.Checklist for author
Details to double-check
dollaryear.csvupdated forh2fuelcell_*scenarios, 2022$)runreeds.py,solve.py)General information to guide review
GSw_H2FuelCell=0by default — no change when switch is off)Did you use LLM tools (chatbot or copilot) in the preparation of this PR? If so, describe how
Yes — Claude Code (Anthropic) assisted with documentation modification and writing this PR language.
Tag points of contact
@yijinli22